Experimental Setup

Data is stored on private repo, extracted signatures are available in toolmarks.Rdata file.

# loads object toolmarks
load(here::here("data/toolmarks.Rdata"))

Each signature is individualized by tool (1-20), size (S, M, L), mark (1-8), side (A,B), angle (60, 70, 80), direction (Fo/Ba)

Currently, there are 512 signatures collected. Figure @fig-overview contains an overview of the status quo.

Overview of all collected signatures under each one of the experimental conditions. Each cell should be filled with a bar of height 8.

Overview of all collected signatures under each one of the experimental conditions. Each cell should be filled with a bar of height 8.

All cells in this overview will, eventually, be filled in.

Align all signatures made by the same edge (side) of the same tool (tool & size), regardless of angle, direction, and repetition:

if (file.exists("aligned_signatures.rds")) {
  align_all <- readRDS("aligned_signatures.rds")
} else {
  align_all <- toolmarks %>%
    mutate(mark_angle_direction = sprintf("%s-%s-%s",mark,angle, direction)) %>%
    group_by(tool, size, side) %>% 
    tidyr::nest() %>%
    mutate(
      aligned = data %>% purrr::map(
        .f = function(d) {
          sig_align_set(d, value = signature,  group = mark_angle_direction)
        }
      )
    )
  saveRDS(align_all, "aligned_signatures.rds")
}
Tool 1S - Edge A Tool 1S - Edge B

Quality control

For the marks of each tool edge, make sure that the alignment worked and we have good marks. The result is included in aligned.pdf.

Generally: marks with signatures above a value of 0.01 seem to suffer from outliers along the boundaries of the profile. It would be helpful for the analysis to re-do the signature extraction for these profiles (e.g. tool 1S, edge A, mark 2, backwards direction).

For tool 1S above, we see that edge B is aligned well across all scans. Edge A seems also be aligned well, however, we see that there are two main patterns in the extracted signatures. From the image below we see that these two main patterns can be explained by the directionality of making the mark:

#> Warning: Removed 284 row(s) containing missing values (geom_path).

There seems to be generally a bit more variability on the left side of the mark when scraping the tool backwards across the surface.

Some of the alignments need to be re-done, e.g.:

Tool 2L

#> Warning: Removed 665 row(s) containing missing values (geom_path).
Alignment of 2L-A by angle.

Alignment of 2L-A by angle.

#> Warning: Removed 249 row(s) containing missing values (geom_path).
Alignment of 2L-A by angle.

Alignment of 2L-A by angle.

#> Warning: Removed 614 row(s) containing missing values (geom_path).
Alignment of 2L-A by angle.

Alignment of 2L-A by angle.

Signature from 4-60-Fo seems like it was reversed.

#> Warning: Removed 296 row(s) containing missing values (geom_path).

Once the signature 4-60-Fo is reversed, all signatures of tool T01L edge A can be aligned in one go across angles.

#> Warning: Removed 1075 row(s) containing missing values (geom_path).

#> Warning: Removed 427 row(s) containing missing values (geom_path).
Alignment of 2L-B by angle.

Alignment of 2L-B by angle.

#> Warning: Removed 447 row(s) containing missing values (geom_path).
Alignment of 2L-B by angle.

Alignment of 2L-B by angle.

#> Warning: Removed 687 row(s) containing missing values (geom_path).
Alignment of 2L-B by angle.

Alignment of 2L-B by angle.

One signature (mark = 3) under a 60 degree angle is not aligned properly.

#> Warning: Removed 427 row(s) containing missing values (geom_path).

Tool 3L

#> Warning: Removed 493 row(s) containing missing values (geom_path).

#> Warning: Removed 303 row(s) containing missing values (geom_path).

#> Warning: Removed 304 row(s) containing missing values (geom_path).